From 57649a241abb66d45fb54814066a9819256a8e0f Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Mon, 21 Jun 2004 09:26:53 +0000 Subject: [PATCH] bitkeeper revision 1.993 (40d6a9ddBgr-KXWbCA_-rEDpeCQHQw) Fix pdb. --- xen/arch/x86/pdb-stub.c | 11 +++++++++-- xen/include/xen/softirq.h | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/pdb-stub.c b/xen/arch/x86/pdb-stub.c index cca507c9b9..c24a86ccdc 100644 --- a/xen/arch/x86/pdb-stub.c +++ b/xen/arch/x86/pdb-stub.c @@ -20,6 +20,7 @@ #include #include #include +#include #undef PDB_DEBUG_TRACE #ifdef PDB_DEBUG_TRACE @@ -1287,10 +1288,15 @@ int pdb_handle_exception(int exceptionVector, return 0; } -void pdb_key_pressed(u_char key, void *dev_id, struct pt_regs *regs) +void __pdb_key_pressed(void) { + struct pt_regs *regs = (struct pt_regs *)get_execution_context(); pdb_handle_exception(KEYPRESS_EXCEPTION, regs); - return; +} + +void pdb_key_pressed(u_char key, void *dev_id, struct pt_regs *regs) +{ + raise_softirq(DEBUGGER_SOFTIRQ); } void initialize_pdb() @@ -1323,6 +1329,7 @@ void initialize_pdb() /* Acknowledge any spurious GDB packets. */ pdb_put_char('+'); + open_softirq(DEBUGGER_SOFTIRQ, __pdb_key_pressed); add_key_handler('D', pdb_key_pressed, "enter pervasive debugger"); pdb_initialized = 1; diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h index 619c86b989..8e45dadf18 100644 --- a/xen/include/xen/softirq.h +++ b/xen/include/xen/softirq.h @@ -11,6 +11,9 @@ enum { AC_TIMER_SOFTIRQ=0, NEW_TLBFLUSH_CLOCK_PERIOD_SOFTIRQ, +#ifdef XEN_DEBUGGER + DEBUGGER_SOFTIRQ, +#endif SCHEDULE_SOFTIRQ, /* NB. This must come last or do_softirq() will break! */ NR_SOFTIRQS }; -- 2.30.2